package edu.hit.crawler.util;


import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class URLFilter {

	private static List<String> suffix_urlfilter = new ArrayList<String>();
	static {
		suffix_urlfilter.add(".gif");
		suffix_urlfilter.add(".doc");
		suffix_urlfilter.add(".pdf");
		suffix_urlfilter.add(".jpg");
		suffix_urlfilter.add(".jpeg");
		suffix_urlfilter.add(".bmp");
		suffix_urlfilter.add(".png");
		suffix_urlfilter.add(".tif");
		suffix_urlfilter.add(".tiff");
		suffix_urlfilter.add(".ico");
		suffix_urlfilter.add(".eps");
		suffix_urlfilter.add(".ps");
		suffix_urlfilter.add(".wmf");
		suffix_urlfilter.add(".fpx");	
		suffix_urlfilter.add(".cur");
		suffix_urlfilter.add(".ani");
		suffix_urlfilter.add(".img");		
		suffix_urlfilter.add(".lwf");
		suffix_urlfilter.add(".pcd");	
		suffix_urlfilter.add(".psp");
		suffix_urlfilter.add(".psd");	
		suffix_urlfilter.add(".tga");
		suffix_urlfilter.add(".xbm");		
		suffix_urlfilter.add(".xpm");
	// web-formats	
		suffix_urlfilter.add(".css");
	// archives/packages
		suffix_urlfilter.add(".rar");
		suffix_urlfilter.add(".arj");
		suffix_urlfilter.add(".arc");
		suffix_urlfilter.add(".7z");
		suffix_urlfilter.add(".cab");
		suffix_urlfilter.add(".lzw");
		suffix_urlfilter.add(".lha");
		suffix_urlfilter.add(".lzh");
		suffix_urlfilter.add(".zip");
		suffix_urlfilter.add(".gz");
		suffix_urlfilter.add(".tar");
		suffix_urlfilter.add(".tgz");
		suffix_urlfilter.add(".sit");
		suffix_urlfilter.add(".rpm");
		suffix_urlfilter.add(".deb");
		suffix_urlfilter.add(".pkg");
	//	audio/video
		suffix_urlfilter.add(".mid");
		suffix_urlfilter.add(".midi");
		suffix_urlfilter.add(".rmi");
		suffix_urlfilter.add(".mpeg");
		suffix_urlfilter.add(".mpg");
		suffix_urlfilter.add(".mpe");
		suffix_urlfilter.add(".mp3");
		suffix_urlfilter.add(".mp4");
		suffix_urlfilter.add(".mp2");
		suffix_urlfilter.add(".aac");
		suffix_urlfilter.add(".mov");
		suffix_urlfilter.add(".fla");
		suffix_urlfilter.add(".flv");
		suffix_urlfilter.add(".ra");
		suffix_urlfilter.add(".ram");
		suffix_urlfilter.add(".rm");
		suffix_urlfilter.add(".wma");
		suffix_urlfilter.add(".wmv");
		suffix_urlfilter.add(".wav");
		suffix_urlfilter.add(".wave");
		suffix_urlfilter.add(".ogg");
		suffix_urlfilter.add(".avi");
		suffix_urlfilter.add(".au");
		suffix_urlfilter.add(".snd");
				
		suffix_urlfilter.add(".exe");
		suffix_urlfilter.add(".lnk");
		suffix_urlfilter.add(".t3x");
		suffix_urlfilter.add(".iso");
				
		
		
	}

	public static boolean filter(String url) {
		
		
		if ( !url.startsWith("http://") ) {
			return false;
		}
		if (url.contains("?") || url.contains("*") || url.contains("!") || url.contains("@") || url.contains("=") || url.contains("�")) {
			
			return false;
		}
		for (int i = 0; i != suffix_urlfilter.size(); ++i) {
			if (url.toLowerCase().endsWith(suffix_urlfilter.get(i)))
				return false;
		}
		return true;
	}
	
	public static void main(String[] args) {
		String url = "http://health.ce.cn/beauty/skin/13577-2012-04-26-女明星洗脸秘招-“清洁”和“保湿”最重要";
		//System.out.println(getCanonicalURL(url));
		BufferedReader br = null;
		//br = new BufferedReader(new FileReader("seeds.txt"));
//	while ((url = br.readLine()) != null) {
			System.out.println(url);
			System.out.println(URLCanonicalizer.getCanonicalURL(url));
			System.out.println(filter(url));
			
			System.out.println("------------------------------------");
//	}

		
		
		
	}
}
